The present invention relates to programmable controllers having a plurality of modules for performing different functions which operate a machine in response to the execution of a control program; and more particularly to a mechanism for identifying each type of module within the programmable controller.
Programmable controllers are typically connected to industrial equipment, such as assembly lines and machine tools, to sequentially operate the equipment in accordance with a stored control program. One type of such programmable controller is disclosed in U.S. Pat. No. 4,293,924 and consists of a rack which contains several functional modules. A rack backplane provides signal buses and connectors for electrically coupling the functional modules. One of these modules contains a processor which sequentially executes the control program. The control program is stored in a memory within the processor module and is executed to examine the condition of selected sensing devices on the controlled equipment, or to energize and deenergize selected operating devices on the controlled equipment contingent upon the status of one or more of the examined sensing devices. Also contained within the rack are a number of input/output (I/O) modules, which interface the processor to the sensing and operating devices. A given programmable controller can have a variety of different types of I/O modules, such as a.c. inputs or outputs, d.c. inputs or outputs, analog inputs or outputs, and open or closed loop positioning modules.
One of the benefits of this type of programmable controller is that by varying the mix of I/O module types, the programmable controller can be configured to operate a wide variety of equipment and its configuration can be changed with alterations to the equipment. However, this advantage also presents a problem in that when a module in the programmable controller is replaced with one of a different type, the control program must be edited accordingly. Should one of the I/O modules be inadvertently replaced with a different type of module or should an intentional replacement of the I/O modules be made without corresponding program editing, the control program will be unable to properly operate the equipment with potentially devastating consequences.
Therefore, it is desirable that the programmable controller, prior to executing the control program, be able to identify the type of each I/O module within the system and confirm that each module corresponds to the type expected to be found by the execution of the control program. Previously, module identification was accomplished by storing a set of identification bytes in a read only memory of the module. However, "non-intelligent" I/O modules do not require such memories, and adding them solely for identification purposes would not be cost effective.